package grape.composite.rest.activity.vo;
import grape.base.service.dict.api.IDictService;
import grape.common.rest.vo.BaseIdVo;

import grape.common.service.trans.TransBy;
import grape.common.service.trans.impl.DatetimeTransServiceImpl;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 活动表
 * </p>
 *
 * @author yangwei
 * @since 2020-08-25
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="活动数据响应对象")
public class ActivityVo extends BaseIdVo<String> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "活动编号")
    private String code;

    @ApiModelProperty(value = "活动标题")
    private String title;

    @ApiModelProperty(value = "标题图")
    private String titleUrl;

    @ApiModelProperty(value = "活动简介")
    private String introduced;

    @ApiModelProperty(value = "主办方")
    private String sponsor;

    @ApiModelProperty(value = "主办方链接")
    private String sponsorLink;

    @ApiModelProperty(value = "作者")
    private String author;

    @ApiModelProperty(value = "开始时间")
    private Long startAt;

    @TransBy(type = DatetimeTransServiceImpl.trans_datetime,byFieldName = "startAt")
    @ApiModelProperty(value = "开始时间文本")
    private String startAtTxt;

    @ApiModelProperty(value = "结束时间")
    private Long endAt;

    @TransBy(type = DatetimeTransServiceImpl.trans_datetime,byFieldName = "endAt")
    @ApiModelProperty(value = "结束时间文本")
    private String endAtTxt;

    @ApiModelProperty(value = "活动地点")
    private String address;

    @ApiModelProperty(value = "联系方式")
    private String contact;

    @ApiModelProperty(value = "场地类型")
    private String placeTypeDictId;

    @TransBy(type = IDictService.trans_dictCode,byFieldName = "placeTypeDictId")
    @ApiModelProperty(value = "场地类型字典编码")
    private String placeTypeDictCode;

    @TransBy(type = IDictService.trans_dictName,byFieldName = "placeTypeDictId")
    @ApiModelProperty(value = "场地类型字典名称")
    private String placeTypeDictName;

    @ApiModelProperty(value = "是否发布")
    private Boolean isPublished;

    @ApiModelProperty(value = "发布/取消发布原因")
    private String publishedReason;

    @ApiModelProperty(value = "活动声明")
    private String activityStatement;

    @ApiModelProperty(value = "序号，从小到大排序")
    private Integer seq;

    @ApiModelProperty(value = "报名链接")
    private String enrollLink;

    @ApiModelProperty(value = "分类，字典id")
    private String categoryDictId;

    @TransBy(type = IDictService.trans_dictCode,byFieldName = "categoryDictId")
    @ApiModelProperty(value = "分类字典编码")
    private String categoryDictCode;

    @TransBy(type = IDictService.trans_dictName,byFieldName = "categoryDictId")
    @ApiModelProperty(value = "分类字典名称")
    private String categoryDictName;

    @ApiModelProperty(value = "内容")
    private String content;

}
